package muhnes.sizoo.controlador;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import muhnes.sizoo.dal.FabricaDAO;
import muhnes.sizoo.dal.ObjetoDao;
import muhnes.sizoo.modelo.Objeto;
import muhnes.sizoo.util.Transaccion;

/**
 * Clase controladora que se encarga de realizar todas las operaciones
 * realizadas por la interfaz del objeto
 * @author Nelson Chicas
 * @
 */

@ManagedBean(name = "objetoBean")
@ViewScoped
public class ObjetoBean extends CRUDBean< Objeto, ObjetoDao > 
    implements Serializable {
    
    /**
     * Permisos de quien puede ver esta pantalla y bajo que nombre se encuentra
     */
    public ObjetoBean(){
        super( Objeto.class );
        vistaProtegida = "objeto";
    }

    /**
     * Inicio de la sesion para utilizar la conexion con el objeto dao.
     * @return un objeto de tipo objetoDao
     */
    @Override
    protected ObjetoDao getDAO () {
        return FabricaDAO.crearObjetoDao();
    }

    /**
     * Metodo para verificar si la operacion que esta realizando esta permitida
     * o no
     * @param transaccion de tipo objeto transaccion
     * @return objeto de tipo boolean que es el que indica si la operacion 
     * es valida o no
     */
    @Override
    protected boolean debeValidar (Transaccion transaccion) {
        boolean validacion = false;
        
        switch( transaccion ) {
            case INSERCION:
            case ACTUALIZACION:
            case ELIMINACION:
                validacion = true;
        }
        
        return validacion;
    }
    
}
